<ui:composition xmlns="http://www.w3.org/1999/xhtml"
                xmlns:ui="http://java.sun.com/jsf/facelets"
                xmlns:h="http://java.sun.com/jsf/html"
                xmlns:f="http://java.sun.com/jsf/core"
                xmlns:p="http://primefaces.org/ui"
                template="./template.xhtml">

    <ui:define name="title">
        DataExporter - <span class="subitem">Customized Documents</span>
    </ui:define>

    <ui:define name="description">
        DataExporter provides easy customization options for the exported document using pre and post processors or ExcelOptions and PDFOptions objects.
    </ui:define>

    <ui:param name="documentationLink" value="/components/dataexporter" />

    <ui:define name="implementation">

        <h:form>
            <p:dataTable id="tbl" var="car" value="#{customizedDocumentsView.cars}" 
                         paginator="true" rows="10">
                <p:column>
                    <f:facet name="header">
                        <h:outputText value="Id" />
                    </f:facet>
                    <h:outputText value="#{car.id}" />
                </p:column>

                <p:column>
                    <f:facet name="header">
                        <h:outputText value="Year" />
                    </f:facet>
                    <h:outputText value="#{car.year}" />
                </p:column>

                <p:column>
                    <f:facet name="header">
                        <h:outputText value="Brand" />
                    </f:facet>
                    <h:outputText value="#{car.brand}" />
                </p:column>

                <p:column>
                    <f:facet name="header">
                        <h:outputText value="Color" />
                    </f:facet>
                    <h:outputText value="#{car.color}" />
                </p:column>
            </p:dataTable>

            <h:commandLink id="excel">
                <p:graphicImage name="/demo/images/excel.png" />
                <p:dataExporter type="xls" target="tbl" fileName="cars" postProcessor="#{customizedDocumentsView.postProcessXLS}" />
            </h:commandLink>

            <h:commandLink id="pdf">
                <p:graphicImage name="/demo/images/pdf.png" />
                <p:dataExporter type="pdf" target="tbl" fileName="cars" preProcessor="#{customizedDocumentsView.preProcessPDF}" />
            </h:commandLink>

            <p:dataTable id="tbl2" var="car" value="#{customizedDocumentsView.cars2}" 
                         paginatorTemplate="{CurrentPageReport}  {FirstPageLink} {PreviousPageLink} {PageLinks} {NextPageLink} {LastPageLink} {Exporters}"
                         paginator="true" rows="10" style="margin-top: 25px;">

                <f:facet name="{Exporters}">
                    <div style="float:right">
                        <h:commandLink>
                            <p:graphicImage name="/demo/images/excel.png" width="24"/>
                            <p:dataExporter type="xls" target="tbl2" fileName="cars" options="#{customizedDocumentsView.excelOpt}" />
                        </h:commandLink>

                        <h:commandLink>
                            <p:graphicImage name="/demo/images/pdf.png" width="24"/>
                            <p:dataExporter type="pdf" target="tbl2" fileName="cars" options="#{customizedDocumentsView.pdfOpt}" />
                        </h:commandLink>
                    </div>
                </f:facet>

                <p:column>
                    <f:facet name="header">
                        <h:outputText value="Id" />
                    </f:facet>
                    <h:outputText value="#{car.id}" />
                </p:column>

                <p:column>
                    <f:facet name="header">
                        <h:outputText value="Year" />
                    </f:facet>
                    <h:outputText value="#{car.year}" />
                </p:column>

                <p:column>
                    <f:facet name="header">
                        <h:outputText value="Brand" />
                    </f:facet>
                    <h:outputText value="#{car.brand}" />
                </p:column>

                <p:column>
                    <f:facet name="header">
                        <h:outputText value="Color" />
                    </f:facet>
                    <h:outputText value="#{car.color}" />
                </p:column>
            </p:dataTable>
        </h:form>

    </ui:define>

</ui:composition>
